package com.study.d022transform;

import javafx.application.Application;
import javafx.geometry.Bounds;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Scale;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;

/**Transform接口之子类  Scale的使用
 * Scale类，用于旋转节点
*@description
*@author xtayhame
*date 2020年3月17日
*version
*since v1.0
*/
public class RotateMain extends Application{
	public static void main(String[] args) {
		launch(args);
	}
	@Override
	public void start(Stage stage) throws Exception {
		AnchorPane anchorPane = new AnchorPane();


		AnchorPane  pane = new AnchorPane();
		pane.setPrefWidth(600);
		pane.setPrefHeight(500);
		pane.setStyle("-fx-background-color:#FFF987");

		AnchorPane.setTopAnchor(pane, 100.0);
		AnchorPane.setLeftAnchor(pane, 100.0);

		anchorPane.getChildren().add(pane);
		stage.setScene(new Scene(anchorPane));
		stage.setWidth(800);
		stage.setHeight(700);
		stage.show();

		//
		Button b1 = new Button("第一个按钮");
		b1.setPrefSize(100, 100);
		pane.getChildren().add(b1);

		Button b2 = new Button("第二个按钮");
		b2.setPrefSize(100, 100);
		pane.getChildren().add(b2);


		//以(50,50)为原点进行45°的顺时针旋转；如果是-45，则为逆时针旋转45°
		Rotate rotate = new Rotate(45, 50, 50);
		b2.getTransforms().add(rotate);


		//为了可以直观看到b2旋转后的坐标，可以将b1的宽和高方法， 包围b2,通过查看b1的坐标，来推断b2的坐标
		b1.setScaleX(1.37);
		b1.setScaleY(1.37);

		//注意： 下面两种方法都无法获取组件的宽和高
		Bounds bd1 = b2.getLayoutBounds();
		System.out.println("【b1的坐标】 x:"+b1.getLocalToSceneTransform().getMxx() + "  y:"+b1.getLocalToSceneTransform().getMxy());
		System.out.println("相对组件自己 【坐标】 [("+bd1.getMinX() + "  " +bd1.getMinY()  + "),("+bd1.getMaxX()+"  " +bd1.getMaxY() +")]  宽：" + bd1.getWidth() + "   高：" + bd1.getHeight());

	}
}
